// Copyright©,2020-2025
// Author: caocheng
// Version: 1.0.0
// Date: 2021/3/19 18:12
// Description：
package service

import (
	SummerWeb "gitee.com/chrischo/go-summer/summer/summer-web"
	"web-server/utils"
)

type UserService struct {
}

func (s *UserService) JwtAuth(ctx SummerWeb.WebContext) error {
	// 我们这里jwt鉴权取头部信息 x-token 登录时回返回token信息 这里前端需要把token存储到cookie或者本地localStorage中 不过需要跟后端协商过期时间 可以约定刷新令牌或者重新登录
	token := ctx.GetHeader("x-token")
	if token == "" {
		return utils.TokenInvalid
	}

	j := utils.NewJwt()
	// parseToken 解析token包含的信息
	claims, err := j.ParseToken(token)
	if err != nil {
		return err
	}
	ctx.Set("claims", claims)
	return nil
}
